m,n = input().split(' ')
m,n = eval(m),eval(n)

# 让 m > n，便于求最大公约数和最小公倍数
if m < n:
    m,n = n,m

# 求最大公约数
# range 的第三个参数为-1，形成从大到小的数列
for i in range(n, 0, -1):
    if m % i == 0 and n % i == 0:
        gcd = i
        break
# 求最小公倍数
tmp = m
while True:
    if tmp % m == 0 and tmp % n == 0:
        lcm = tmp
        break
    else:
        tmp += m

print('{} {}'.format(gcd,lcm))